package cn.dida.service;

import cn.dida.model.Branch;
import cn.dida.model.Pageable;

import java.util.List;

/**
 * 网点管理 业务层接口
 * @author weiwei
 */
public interface BranchService {
	/**
	 * 网点列表
	 * @param companyId 公司id
	 * @param keyword 查询条件
	 * @param state 网点状态,1正常，2停用
	 * @param page 分页游标
	 * @return Pageable<Branch> 网点分页列表
	 * */
    Pageable<Branch> queryBranch(Integer companyId, String keyword, Integer state, int page);

    /**
     * 网点列表（数据导出用）
     *
     * @param companyId 所属公司id
     * @param keyword   查询条件
     * @param state     网点状态：1正常，2停用
     * @return List<Branch> 网点列表
     * @date 2016-12-08 11:10
     */
    List<Branch> queryBranchForExport(Integer companyId, String keyword, Integer state);

    /**
     * 获取网点列表
     * @param companyId 公司id
     * @param state 网点状态：1正常，2停用
     * @return List<Branch> 网点列表数据
     * */
    List<Branch> queryBranch(Integer companyId, Integer state);

    /**
     * 新增网点
     * @param branch 网点实体信息
     * @return Boolean true操作成功，false操作失败
     * */
    Boolean insertBranch(Branch branch);

    /**
     * 根据公司id和网点id获取网点
     * @param companyId 公司id
     * @param id 网点id
     * @return Branch 网点
     * */
    Branch getBranch(Integer companyId, Integer id);

    /**
     * 根据公司id和联系电话 查询网点
     * @param companyId 公司id
     * @param linkPhone 联系电话
     * @return Branch 网点
     * */
    Branch getByLinkPhone(Integer companyId, String linkPhone);

    /**
     * 更新网点
     * @param branch 网点实体信息
     * @return int 受影响的记录行数
     * */
    Boolean updateBranch(Branch branch);

    /**
     * 删除网点
     * @param companyId 公司id
     * @param id 网点id
     * @return int 受影响的记录行数
     * */
    Boolean deleteBranch(Integer companyId, Integer id);

    /**
     * 根据网点id,删除奖品与网点关联
     * @param branchId 网点id
     * @return int 受影响的记录行数
     * @date 2016-11-20 17:42
     */
    Boolean delPBByBranchId(String branchId);
}
